namespace Vec
{
	public class WPFPaint
	{
		public Style style;

		public void setStrokeJoin(Join join)
		{
			//stro = new BasicStroke(stro.getLineWidth(), stro.getEndCap(), join, stro.getMiterLimit(), stro.getDashArray(), stro.getDashPhase());
		}

		public void setStrokeMiter(float v)
		{
			if (v < 1) return;
			//stro = new BasicStroke(stro.getLineWidth(), stro.getEndCap(), stro.getLineJoin(), v, stro.getDashArray(), stro.getDashPhase());
		}

		public void setStrokeWidth(float v)
		{
			//stro = new BasicStroke(v, stro.getEndCap(), stro.getLineJoin(), stro.getMiterLimit(), stro.getDashArray(), stro.getDashPhase());
		}

		public void setStrokeCap(Cap cap)
		{
			//stro = new BasicStroke(stro.getLineWidth(), cap, stro.getLineJoin(), stro.getMiterLimit(), stro.getDashArray(), stro.getDashPhase());
		}

		public void setShadowLayer(float v, float v1, float v2, int i)
		{
		}

		public void setPathEffect(Shape pathEffect)
		{
		}

		public void setTextScaleX(float v)
		{
		}

		/*public void setTypeface(Font font1)
        {
            this.font = new Font(font1.getName(), font.getStyle(), font.getSize());
        }*/
		/*public float measureText(WPFCanvas cvs, String toString)
        {
            FontMetrics fm = cvs.gp.getFontMetrics();
            return fm.stringWidth(toString);
        }*/

		public float getTextSize()
		{
			return 0;
			//return font.getSize();
		}

		public void setTextSize(float v)
		{
		}

		public void setColor(int ac)
		{
			//this.color = new Color(ac, true);
		}

		public void setStyle(Style style)
		{
			this.style = style;
		}

		public void setShader(Shape shader)
		{
		}

		public void setXfermode(Shape shape)
		{
		}

		public void reset()
		{
		}

		public void setAntiAlias(bool antialias)
		{
		}

		public void setDither(bool dither)
		{
		}

		public enum Style
		{
			FILL,
			STROKE
		}

		public enum Cap
		{
			ROUND, SQUARE, BUTT
		}

		public enum Join
		{
			ROUND, BEVEL, MITER
		}

		//	private PorterDuffXfermode getXfer(){
		//		PorterDuff.Mode xm=null;
		//		if(hasFlag(Shape.XFERMODE.ADD)) xm=PorterDuff.Mode.ADD;
		//		else if(hasFlag(Shape.XFERMODE.CLEAR)) xm=PorterDuff.Mode.CLEAR;
		//		else if(hasFlag(Shape.XFERMODE.DARKEN)) xm=PorterDuff.Mode.DARKEN;
		//		else if(hasFlag(Shape.XFERMODE.DST)) xm=PorterDuff.Mode.DST;
		//		else if(hasFlag(Shape.XFERMODE.DST_ATOP)) xm=PorterDuff.Mode.DST_ATOP;
		//		else if(hasFlag(Shape.XFERMODE.DST_IN)) xm=PorterDuff.Mode.DST_IN;
		//		else if(hasFlag(Shape.XFERMODE.DST_OUT)) xm=PorterDuff.Mode.DST_OUT;
		//		else if(hasFlag(Shape.XFERMODE.DST_OVER)) xm=PorterDuff.Mode.DST_OVER;
		//		else if(hasFlag(Shape.XFERMODE.LIGHTEN)) xm=PorterDuff.Mode.LIGHTEN;
		//		else if(hasFlag(Shape.XFERMODE.MULTIPLY)) xm=PorterDuff.Mode.MULTIPLY;
		//		else if(hasFlag(Shape.XFERMODE.OVERLAY)) xm=PorterDuff.Mode.OVERLAY;
		//		else if(hasFlag(Shape.XFERMODE.SCREEN)) xm=PorterDuff.Mode.SCREEN;
		//		else if(hasFlag(Shape.XFERMODE.SRC)) xm=PorterDuff.Mode.SRC;
		//		else if(hasFlag(Shape.XFERMODE.SRC_ATOP)) xm=PorterDuff.Mode.SRC_ATOP;
		//		else if(hasFlag(Shape.XFERMODE.SRC_IN)) xm=PorterDuff.Mode.SRC_IN;
		//		else if(hasFlag(Shape.XFERMODE.SRC_OUT)) xm=PorterDuff.Mode.SRC_OUT;
		//		else if(hasFlag(Shape.XFERMODE.SRC_OVER)) xm=PorterDuff.Mode.SRC_OVER;
		//		else if(hasFlag(Shape.XFERMODE.XOR)) xm=PorterDuff.Mode.XOR;
		//		if(xm!=null) return new PorterDuffXfermode(xm);
		//		return null;
		//	}
		//	private synchronized PathEffect createPathEffect(float dp){
		//		PathEffect l=null, r=null, s=null, eff;
		//		if(dashPattern!=null&&!dashPattern.isEmpty()){
		//			try{
		//				String[] d=dashPattern.split(",");
		//				float[] ps=new float[d.length];
		//				int k=0;
		//				for(String x: d) ps[k++]=Float.parseFloat(x)*dp;
		//				l=new DashPathEffect(ps,(float)par[8]/100f*dp);
		//			}catch(Throwable ignored){
		//			}
		//		}
		//		if(par[9]!=0&&par[10]!=0)
		//			r=new DiscretePathEffect((float)par[9]/100f*dp,(float)par[10]/100f*dp);
		//		if(par[11]!=0) s=new CornerPathEffect((float)par[11]/100f*dp);
		//		if(l==null&&r==null&&s==null) return null;
		//		if(l==null)
		//			if(r==null)
		//				eff=s;
		//			else if(s==null) eff=r;
		//			else eff=new ComposePathEffect(r,s);
		//		else if(r==null)
		//			if(s==null) eff=l;
		//			else eff=new ComposePathEffect(l,s);
		//		else if(s==null) eff=new ComposePathEffect(l,r);
		//		else eff=new ComposePathEffect(
		//					new ComposePathEffect(l,r)
		//					,s);
		//		return eff;
		//	}
		//	private synchronized Shader createShader(int alpha){
		//		Shader l=null, r=null, s=null, shader;
		//		if(!linear.isEmpty()){
		//			Point p1=linear.get(0), p2=linear.get(1);
		//			int[] c=new int[linear.size()-2];
		//			float[] p=new float[c.length];
		//			for(int i=0;i<c.length;i++){
		//				Point f=linear.get(i+2);
		//				c[i]=getAC(f.x,alpha);
		//				p[i]=(float)f.y/100f;
		//			}
		//			Shader.TileMode m=Shader.TileMode.CLAMP;
		//			if(hasFlag(Shape.TILEMODE.L_MIRROR)) m=Shader.TileMode.MIRROR;
		//			else if(hasFlag(Shape.TILEMODE.L_REPEAT)) m=Shader.TileMode.REPEAT;
		//			l=new LinearGradient(p1.x,p1.y,p2.x,p2.y,c,p,m);
		//		}
		//		if(!radial.isEmpty()){
		//			Point p1=radial.get(0), p2=radial.get(1);
		//			float rr=(float)Math.sqrt(Math.pow(p2.x-p1.x,2)+Math.pow(p2.y-p1.y,2));
		//			int[] c=new int[radial.size()-2];
		//			float[] p=new float[c.length];
		//			for(int i=0;i<c.length;i++){
		//				Point f=radial.get(i+2);
		//				c[i]=getAC(f.x,alpha);
		//				p[i]=(float)f.y/100f;
		//			}
		//			Shader.TileMode m=Shader.TileMode.CLAMP;
		//			if(hasFlag(Shape.TILEMODE.R_MIRROR)) m=Shader.TileMode.MIRROR;
		//			else if(hasFlag(Shape.TILEMODE.R_REPEAT)) m=Shader.TileMode.REPEAT;
		//			r=new RadialGradient(p1.x,p1.y,rr,c,p,m);
		//		}
		//		if(!sweep.isEmpty()){
		//			Point p1=sweep.get(0);
		//			int[] c=new int[sweep.size()-1];
		//			float[] p=new float[c.length];
		//			for(int i=0;i<c.length;i++){
		//				Point f=sweep.get(i+1);
		//				c[i]=getAC(f.x,alpha);
		//				p[i]=(float)f.y/100f;
		//			}
		//			s=new SweepGradient(p1.x,p1.y,c,p);
		//		}
		//		if(l==null&&r==null&&s==null) return null;
		//		if(l==null)
		//			if(r==null)
		//				shader=s;
		//			else if(s==null) shader=r;
		//			else shader=new ComposeShader(r,s,PorterDuff.Mode.ADD);
		//		else if(r==null)
		//			if(s==null) shader=l;
		//			else shader=new ComposeShader(l,s,PorterDuff.Mode.ADD);
		//		else if(s==null) shader=new ComposeShader(l,r,PorterDuff.Mode.ADD);
		//		else shader=new ComposeShader(
		//					new ComposeShader(l,r,PorterDuff.Mode.ADD)
		//					,s,PorterDuff.Mode.ADD);
		//		return shader;
		//	}
	}
}